﻿using RndMaterialDisposalService.Models.RequestModel;
using RndMaterialDisposalService.Models;
using ValidationProblemTracking.Models;
using RndMaterialDisposalService.Models.RequestModel;

namespace ValidationProblemTracking.Services.Interface.ValidationProblemTracking
{
    public interface IValidationProblemService
    {
        /// <summary>
        /// 返回中试验证问题处理电子流报表数据（带分页）
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        List<ValidationProblemReportFormModel> GetValidationProblemReportFormPageList(ValidationProblemReportConditionModel Input);

        /// <summary>
        ///返回中试验证问题处理电子流报表主数据
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        List<ValidationProblemReportFormModel> GetValidationProblemReportFormData(ValidationProblemReportConditionModel Input);

        /// <summary>
        /// 新增中试验证问题处理电子流业务数据
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task<int> AddValidationProblemBusinessData(ValidationProblemBusinessDataModel Input);

        /// <summary>
        /// 获取启动单数据
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        (List<LaunchOrderModel>,int) GetLaunchOrderDataList(LaunchOrderConditionModel Input);

        /// <summary>
        /// 根据ProcInstId获取启动单数据
        /// </summary>
        /// <param name="procInstId"></param>
        /// <returns></returns>
        List<LaunchOrderModel> GetProcInstIdLaunchOrderDataList(string procInstId);

        /// <summary>
        /// 邮件知会
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        bool SendEmailNotification(InformInformation info);
    }
}
